#include "abstractcurve.h"

namespace CurveEditor {

AbstractCurve::AbstractCurve(CurveType type):
    m_type(type)
{

}

AbstractCurve::~AbstractCurve()
{

}

RandomCurve::RandomCurve(const QByteArray &data):
    AbstractCurve(CURVE_RANDOM)
{
    if (!data.isEmpty()) {
        m_data = new QByteArray(data);
    } else {
        m_data = nullptr;
    }
}

RandomCurve::~RandomCurve()
{
    if (m_data != nullptr) {
        delete m_data;
    }
}

void RandomCurve::validate()
{

}

bool RandomCurve::isValid()
{
    bool valid = true;
    // TODO: checking if curve's parameter is ok

    return valid;
}

void RandomCurve::setRandomData(const QByteArray &data)
{
    if (data.isEmpty()) return;
    if (m_data == nullptr) {
        m_data = new QByteArray(data);
    } else {
        *m_data = data;
    }
}

} // CurveEditor
